package com.ruoyi.system.service.impl;


import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.IngreVatMapper;
import com.ruoyi.system.domain.IngreVat;
import com.ruoyi.system.service.IIngreVatService;

/**
 * 储罐可执行动作配置Service业务层处理
 *
 * @author ruoyi
 * @date 2025-02-12
 */
@Service
public class IngreVatServiceImpl extends ServiceImpl<IngreVatMapper,IngreVat>implements IIngreVatService
{
    @Autowired
    private IngreVatMapper ingreVatMapper;

    /**
     * 查询储罐可执行动作配置
     *
     * @param id 储罐可执行动作配置主键
     * @return 储罐可执行动作配置
     */
    @Override
    public IngreVat selectIngreVatById(Long id)
    {
        return ingreVatMapper.selectIngreVatById(id);
    }

    /**
     * 查询储罐可执行动作配置列表
     *
     * @param ingreVat 储罐可执行动作配置
     * @return 储罐可执行动作配置
     */
    @Override
    public List<IngreVat> selectIngreVatList(IngreVat ingreVat,Integer pageNum,Integer pageSize)
    {
        LambdaQueryWrapper<IngreVat> wrapper = new LambdaQueryWrapper<>();

        if(ingreVat.getVatType()!=null){
            wrapper.likeLeft(IngreVat::getVatType,ingreVat.getVatType());
        }
        if(ingreVat.getVatName()!=null){
            wrapper.like(IngreVat::getVatName,ingreVat.getVatName());
        }
        if(StringUtils.isNotBlank(ingreVat.getIngreNo())){
            wrapper.likeLeft(IngreVat::getIngreNo,ingreVat.getIngreNo());
        }if(StringUtils.isNotBlank(ingreVat.getIngreName())){
            wrapper.like(IngreVat::getIngreName,ingreVat.getIngreName());
        }

        List<IngreVat> list = baseMapper.selectPage(new Page<>(pageNum,pageSize),wrapper).getRecords();
        return list;
    }

    @Override
    public Long selectIngreVatCount(IngreVat ingreVat) {
        LambdaQueryWrapper<IngreVat> wrapper = new LambdaQueryWrapper<>();

        if(ingreVat.getVatType()!=null){
            wrapper.likeLeft(IngreVat::getVatType,ingreVat.getVatType());
        }
        if(ingreVat.getVatName()!=null){
            wrapper.like(IngreVat::getVatName,ingreVat.getVatName());
        }
        if(StringUtils.isNotBlank(ingreVat.getIngreNo())){
            wrapper.likeLeft(IngreVat::getIngreNo,ingreVat.getIngreNo());
        }if(StringUtils.isNotBlank(ingreVat.getIngreName())){
            wrapper.like(IngreVat::getIngreName,ingreVat.getIngreName());
        }
        return baseMapper.selectCount(wrapper);
    }

    @Override
    public List<IngreVat> selectIngreVatAll(IngreVat ingreVat) {
        return ingreVatMapper.selectIngreVatList(ingreVat);
    }

    /**
     * 新增储罐可执行动作配置
     *
     * @param ingreVat 储罐可执行动作配置
     * @return 结果
     */
    @Override
    public int insertIngreVat(IngreVat ingreVat)
    {
        return ingreVatMapper.insertIngreVat(ingreVat);
    }

    /**
     * 修改储罐可执行动作配置
     *
     * @param ingreVat 储罐可执行动作配置
     * @return 结果
     */
    @Override
    public int updateIngreVat(IngreVat ingreVat)
    {
        return ingreVatMapper.updateIngreVat(ingreVat);
    }

    /**
     * 批量删除储罐可执行动作配置
     *
     * @param ids 需要删除的储罐可执行动作配置主键
     * @return 结果
     */
    @Override
    public int deleteIngreVatByIds(Long[] ids)
    {
        return ingreVatMapper.deleteIngreVatByIds(ids);
    }

    /**
     * 删除储罐可执行动作配置信息
     *
     * @param id 储罐可执行动作配置主键
     * @return 结果
     */
    @Override
    public int deleteIngreVatById(Long id)
    {
        return ingreVatMapper.deleteIngreVatById(id);
    }
}

